home *** CD-ROM | disk | FTP | other *** search
/ Champak 62 / Volume 62 - JOGO DISK .iso / Games / penguin_dinner.swf / scripts / __Packages / classes / movieclip / AnimatedClip.as
Text File  |  2008-03-17  |  3KB  |  90 lines

  1. class classes.movieclip.AnimatedClip extends MovieClip
  2. {
  3.    static var COMPLETE_SEQUENCE = "complete_sequence";
  4.    static var COMPLETE_STATE = "complete_state";
  5.    static var STATE_DEFAULT = "state_default";
  6.    static var STATE_ANIMATE = "state_animate";
  7.    function AnimatedClip()
  8.    {
  9.       super();
  10.       com.gskinner.events.GDispatcher.initialize(this);
  11.       this.animationQueue = [];
  12.       this.setAnimationState(classes.movieclip.AnimatedClip.STATE_DEFAULT);
  13.    }
  14.    function addEventListener(eventType, scope, functionName)
  15.    {
  16.    }
  17.    function removeEventListener(eventType, scope, functionName)
  18.    {
  19.    }
  20.    function removeAllEventListeners(eventType)
  21.    {
  22.    }
  23.    function dispatchEvent(event)
  24.    {
  25.    }
  26.    function setAnimationState($animationState)
  27.    {
  28.       this.removeAllEventListeners(classes.movieclip.AnimatedClip.COMPLETE_SEQUENCE);
  29.       this.removeAllEventListeners(classes.movieclip.AnimatedClip.COMPLETE_STATE);
  30.       this.animationQueue = [];
  31.       this.state = $animationState;
  32.       this.gotoAndStop(this.state);
  33.       this.stateClip = this[this.state];
  34.       this.stateClip.gotoAndStop(1);
  35.    }
  36.    function setAnimationSequence($animationQueue)
  37.    {
  38.       this.sequencePlaying = true;
  39.       this.removeAllEventListeners(classes.movieclip.AnimatedClip.COMPLETE_SEQUENCE);
  40.       this.removeAllEventListeners(classes.movieclip.AnimatedClip.COMPLETE_STATE);
  41.       this.animationQueue = $animationQueue;
  42.       this._setAnimationState();
  43.    }
  44.    function _setAnimationState()
  45.    {
  46.       if(!this.animationQueue.length)
  47.       {
  48.          this.sequencePlaying = false;
  49.          this.dispatchEvent(new classes.events.AnimatedClipEvent(this,classes.movieclip.AnimatedClip.COMPLETE_SEQUENCE,this.stateClip._currentframe,this.state));
  50.          return undefined;
  51.       }
  52.       this.state = String(this.animationQueue.shift());
  53.       this.gotoAndStop(this.state);
  54.       this.stateClip = this[this.state];
  55.       this.stateClip.gotoAndStop(1);
  56.    }
  57.    function animate($animationState)
  58.    {
  59.       if(!this.animator)
  60.       {
  61.          return false;
  62.       }
  63.       if(typeof $animationState == "string")
  64.       {
  65.          this.setAnimationState($animationState);
  66.       }
  67.       else
  68.       {
  69.          this.setAnimationSequence($animationState);
  70.       }
  71.       return true;
  72.    }
  73.    function update()
  74.    {
  75.       if(this.stateClip._currentframe == this.stateClip._totalframes || !this.stateClip)
  76.       {
  77.          this.dispatchEvent(new classes.events.AnimatedClipEvent(this,classes.movieclip.AnimatedClip.COMPLETE_STATE,this.stateClip._currentframe,this.state));
  78.          this.stateClip.gotoAndStop(1);
  79.          if(this.sequencePlaying)
  80.          {
  81.             this._setAnimationState();
  82.          }
  83.       }
  84.       else
  85.       {
  86.          this.stateClip.nextFrame();
  87.       }
  88.    }
  89. }
  90.